package com.sk.stone.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 微信模板消息
 */
@NoArgsConstructor
@Data
public class TemplateMsgVo {

    /**
     * 接收者openid
     * (是否必传:是)
     */
    @JsonProperty("touser")
    private String touser;
    /**
     * 模板ID
     * (是否必传:是)
     */
    @JsonProperty("template_id")
    private String template_id;
    /**
     * 模板跳转链接（海外帐号没有跳转能力）
     * (是否必传:否)
     */
    @JsonProperty("url")
    private String url;
    /**
     * 跳小程序所需数据，不需跳小程序可不用传该数据
     * (是否必传:否)
     */
    @JsonProperty("miniprogram")
    private MiniprogramDTO miniprogram;


    /**
     * 模板内容字体颜色，不填默认为黑色
     * (是否必传:否)
     */
    @JsonProperty("color")
    private String color;

    /**
     * 防重入id。对于同一个openid + client_msg_id, 只发送一条消息,10分钟有效,超过10分钟不保证效果。若无防重入需求，可不填
     * (是否必传:否)
     */
    @JsonProperty("client_msg_id")
    private String client_msg_id;

    /**
     * todo 模板数据(动态的-每个模板不同)
     */
    @JsonProperty("data")
    private Object data;

    /**
     * 小程序相关信息
     */
    @NoArgsConstructor
    @Data
    public static class MiniprogramDTO {
        /**
         * 所需跳转到的小程序appid（该小程序 appid 必须与发模板消息的公众号是绑定关联关系，暂不支持小游戏）
         * (是否必传:是)
         */
        @JsonProperty("appid")
        private String appid;
        /**
         * 所需跳转到小程序的具体页面路径，支持带参数,（示例index?foo=bar），要求该小程序已发布，暂不支持小游戏
         * (是否必传:否)
         */
        @JsonProperty("pagepath")
        private String pagepath;
    }

    private String accessToken;

}
